package com.vehiclesecure.repository;

import com.vehiclesecure.model.VehicleData;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 车辆数据访问层，提供车辆数据的CRUD操作
 */
@Repository
public interface VehicleDataRepository extends MongoRepository<VehicleData, String> {
    
    /**
     * 根据车辆ID查找车辆数据
     * @param vehicleId 车辆唯一标识符
     * @return 车辆数据列表
     */
    List<VehicleData> findByVehicleId(String vehicleId);
    
    /**
     * 根据时间范围查询车辆数据
     * @param vehicleId 车辆唯一标识符
     * @param start 开始时间
     * @param end 结束时间
     * @return 车辆数据列表
     */
    List<VehicleData> findByVehicleIdAndTimestampBetween(String vehicleId, LocalDateTime start, LocalDateTime end);
    
    /**
     * 查询紧急情况数据
     * @param emergencyFlag 紧急情况标志
     * @return 紧急情况数据列表
     */
    List<VehicleData> findByEmergencyFlagTrue();
}